Multi-dimensional Kernel Generation for Loop Nest Software Pipelining

نویسندگان

  • Alban Douillet
  • Hongbo Rong
  • Guang R. Gao
چکیده

Single-dimension Software Pipelining (SSP) has been proposed as an effective software pipelining technique for multidimensional loops [18]. However, the scheduling methods that actually produce the kernel code have not been published yet. Because of the multi-dimensional nature of SSP kernels, the scheduling problem is more complex and challenging than with modulo scheduling. The scheduler must handle multiple subkernels and initiation rates, scheduling constraints specific to SSP while producing a solution that minimizes the execution time of the final schedule. In this paper three approaches are proposed: the flat method, which schedules operations from different loop levels with the same priority, the level-by-level method, which schedules innermost operations first and does not let other operations interfere with the already scheduled levels, and the hybrid method, which uses the level-by-level mechanism for the innermost level and the flat solution for the other levels. We also break a scheduling constraint introduced in earlier publications and allow for a more compact kernel. The proposed approaches, combined with different sets of heuristics, have been implemented in the Open64/ORC compiler, compared on loop nests from the Livermore and NAS benchmarks.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software Pipelining of Nested Loops

Software pipelining is a technique to improve the performance of a loop by overlapping the execution of several iterations. The execution of a software-pipelined loop goes through three phases: prolog, kernel, and epilog. Software pipelining works best if most of the time is spent in the kernel phase rather than in the prolog or epilog phases. This can happen only if the trip count of a pipelin...

متن کامل

Decomposing Meeting Graph Circuits to Minimise Kernel Loop Unrolling

This article studies an important open problem in backend compilation regarding loop unrolling after periodic register allocation. Although software pipelining is a powerful technique to extract fine-grain parallelism, variables can stay alive across more than one kernel iteration, which is challenging for code generation. The classical software solution that does not alter the computation thro...

متن کامل

From Cyclo-Static Process Networks to Code Generation for Multidimensional Software Pipelining. (Des réseaux de processus cyclo-statiques à la génération de code pour le pipeline multi-dimensionnel)

Applications based on streams, ordered sequences of data values, are important targets of program optimization because of their high computational requirements and the diversity of their application domains: communication, embedded systems, multimedia, etc. One of the most important and difficult problems in special purpose stream language design and implementation is how to schedule these appl...

متن کامل

Instruction Re-selection for Iterative Modulo Scheduling on High Performance Multi-issue DSPs

An iterative modulo scheduling is very important for compilers targeting high performance multi-issue digital signal processors. This is because these processors are often severely limited by idle state functional units and thus the reduced idle units can have a positively significant impact on their performance. However, complex instructions, which are used in most recent DSPs such as mac, usu...

متن کامل

Using the Meeting Graph Framework to Minimise Kernel Loop Unrolling for Scheduled Loops

This paper improves our previous research effort [1] by providing an efficient method for kernel loop unrolling minimisation in the case of already scheduled loops, where circular lifetime intervals are known. When loops are software pipelined, the number of values simultaneously alive becomes exactly known giving better opportunities for kernel loop unrolling. Furthermore, fixing circular life...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006